package com.dreamwhale.machinery.user.service;

import com.dreamwhale.machinery.config.DataResult;
import com.dreamwhale.machinery.goods.entity.YxStoreOrder;
import com.dreamwhale.machinery.user.entity.YxUser;
import com.baomidou.mybatisplus.extension.service.IService;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author Author
 * @since 2020-05-27
 */
public interface YxUserService extends IService<YxUser> {

    /**
     * @param : yxUser 用户类
     * @return :
     * @MethodName : userRegister
     * @Description : 注册
     * @Author : DragonUncle
     * @Data : 17:22 2020/5/29
     */
    DataResult userRegister(YxUser yxUser, String code);

    /**
     * @param : account 账号
     * @param : password 密码
     * @param : code 安全码
     * @return :
     * @MethodName : userLogin
     * @Description : 用户登录
     * @Author : DragonUncle
     * @Data : 17:28 2020/5/29
     */
    DataResult userLogin(String account, String password, String code);

    /**
     * @param : phone   手机号
     * @return :
     * @MethodName : GetVerificationCode
     * @Description : 发送手机号
     * @Author : DragonUncle
     * @Data : 14:25 2020/5/30
     */
    DataResult GetVerificationCode(String phone);

    /**
     * @param : userId 用户id
     * @return :
     * @MethodName : GetPersonalInformation
     * @Description : 获取个人信息
     * @Author : DragonUncle
     * @Data : 21:41 2020/5/30
     */
    DataResult GetPersonalInformation(Integer userId);

    /**
     * 修改密码
     *
     * @param yxUser
     * @return
     */
    int updateMyPassWords(YxUser yxUser);


    /**
     * @param : userId 用户id
     * @param : type 订单类型
     * @return :
     * @MethodName : inquiryOrder
     * @Description : 查询订单
     * @Author : DragonUncle
     * @Data : 9:48 2020/6/8
     */
    List<YxStoreOrder> inquiryOrder(Integer userId, Integer type);

    /**
     * @param : orderId 订单信息
     * @return :
     * @MethodName :inquiryOrderInfo
     * @Description :查询订单信息
     * @Author : DragonUncle
     * @Data : 9:48 2020/6/8
     */
    DataResult inquiryOrderInfo(String orderId);

    /**
     * @param : userId 用户id
     * @param : type 收藏类型
     * @return :
     * @MethodName : inquiryConsultingCollection
     * @Description : 查询资讯收藏
     * @Author : DragonUncle
     * @Data : 9:48 2020/6/8
     */
    DataResult inquiryConsultingCollection(Integer userId, Integer type);

    /**
     * 根据用户id查询信息
     *
     * @param userId
     * @return
     */
    Map selectYxUserByUserId(Integer userId);


    DataResult inquiryMyOrder(Integer userId, Integer type);

    DataResult changeUserInfo(YxUser yxUser, Integer userId);
}
